using System.Collections.Generic;
using HCI.Questionaire.Entities;

namespace HCI.Questionaire.QuestionGroup
{
    public class QuestionGroup4 : QuestionGroupBase
    {
        private int _MaxPageIndex = 2;
        private int PageIndex = 0;

        public override int CurrentQuestionIndex
        {
            get
            {
                return PageIndex;
            }
        }
        public override int NextQuestion()
        {
            if (PageIndex < _MaxPageIndex)
            {
                PageIndex++;
                this.OnQuestionIndexChanged();
                return PageIndex;
            }
            else
                return _MaxPageIndex;
        }

        public override int PreviousQuestion()
        {
            if (PageIndex > 0)
            {
                PageIndex--;
                this.OnQuestionIndexChanged();
                return PageIndex;
            }
            else
                return 0;
        }
        public override bool CanMoveNext
        {
            get
            {
                return this.PageIndex < _MaxPageIndex;
            }
        }

        public override bool CanMovePrevious
        {
            get
            {
                return this.PageIndex > 0;
            }
        }

        #region QuestionGroupBase Members

        public override string Description
        {
            get
            {
                return "การแก้ปัญหา";
            }
        }

        public override string Instruction
        {
            get
            {
                return "โปรดอ่านประเด็นต่อไปนี้ แล้วแสดง\nความเห็นด้วย หรือไม่เห็นด้วย\n\n\"ปัญหา\" ในที่นี้  คือ ปัญหาทั่วไปใน\nชีวิตประจำวันที่ท่านต้องจัดการแก้ไข";
            }
        }

        public override string QuestionStateText
        {
            get
            {
                if (this.QuestionList == null)
                    return string.Format("1/{0}", this.QuestionList.Count);
                return string.Format("{0}/{1}", this.CurrentQuestionIndex + 1, this.QuestionList.Count);
            }
        }

        protected override List<Question> CreateQuestionInGroup()
        {
            var questionList = new List<Question>();
            var qg1 = new RatingQuestionGroup();
            {
                var q1 = new RatingQuestion { QuestionText = "ท่านมักย้อนกลับไปตรวจสอบวิธีแก้ปัญหา\nเมื่อการแก้ปัญหาประสบความล้มเหลว", AnswerCollection = new List<Answer>() };
                q1.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q2 = new RatingQuestion { QuestionText = "แม้ปัญหาจะซับซ้อน ท่านก็มีวิธีที่ทำให้เข้าใจปัญหาดังกล่าวอย่างถูกต้อง", AnswerCollection = new List<Answer>() };
                q2.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q3 = new RatingQuestion { QuestionText = "หากการแก้ปัญหาครั้งแรกล้มเหลว ความมั่นใจที่จะแก้ปัญหาเดิมหากเกิดขึ้นอีกจะน้อยมาก", AnswerCollection = new List<Answer>() };
                q3.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q4 = new RatingQuestion { QuestionText = "หลังจากต้องแก้ปัญหา ท่านมักลืมวิเคราะห์ความผิดพลาดที่เกิดขึ้น", AnswerCollection = new List<Answer>() };
                q4.AddAnswer(new Answer { AnswerResult = 0.0 });


                qg1.Add(q1);
                qg1.Add(q2);
                qg1.Add(q3);
                qg1.Add(q4);

            }

            var qg2 = new RatingQuestionGroup();
            {
                var q5 = new RatingQuestion { QuestionText = "หากต้องจัดการปัญหาใด ท่านมักได้ความคิดดีสำหรับแก้ปัญหานั้น", AnswerCollection = new List<Answer>() };
                q5.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q6 = new RatingQuestion { QuestionText = "เมื่อต้องแก้ปัญหา ท่านจะใช้เวลาเพื่อเปรียบเทียบผลที่เกิดขึ้นจริงกับที่คาด", AnswerCollection = new List<Answer>() };
                q6.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q7 = new RatingQuestion { QuestionText = "เมื่อเกิดปัญหาท่านจะพยายามให้มีหลายทางเลือก\nในการแก้ปัญหานั้น", AnswerCollection = new List<Answer>() };
                q7.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q8 = new RatingQuestion { QuestionText = "เมื่อเผชิญหน้ากับปัญหา ท่านสามารถควบคุมอารมณ์\nให้สามารถไตร่ตรองหาทางแก้ไขปัญหานั้นได้ดี", AnswerCollection = new List<Answer>() };
                q8.AddAnswer(new Answer { AnswerResult = 0.0 });

                

                qg2.Add(q5);
                qg2.Add(q6);
                qg2.Add(q7);
                qg2.Add(q8);

            }
            var qg3 = new RatingQuestionGroup();
            {
                var q9 = new RatingQuestion { QuestionText = "ท่านสามารถจัดการกับปัญหาส่วนใหญ่ได้ แม้ในเบื้องต้นจะยังมองไม่เห็นทางแก้", AnswerCollection = new List<Answer>() };
                q9.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q10 = new RatingQuestion { QuestionText = "ปัญหาส่วนใหญ่ที่ท่านพบมักซับซ้อน\nเกินความสามารถของท่าน", AnswerCollection = new List<Answer>() };
                q10.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q11 = new RatingQuestion { QuestionText = "เมื่อต้องจัดการกับปัญหาใด ท่านมักพอใจกับทางออกที่ได้ดำเนินการ", AnswerCollection = new List<Answer>() };
                q11.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q12 = new RatingQuestion { QuestionText = "ท่านมีแนวโน้มที่จะแก้ปัญหาด้วยวิธีแรกที่ท่านคิดออก\n", AnswerCollection = new List<Answer>() };
                q12.AddAnswer(new Answer { AnswerResult = 0.0 });

                qg3.Add(q9);
                qg3.Add(q10);
                qg3.Add(q11);
                qg3.Add(q12);
            }
            this.AddQuestion(qg1);
            this.AddQuestion(qg2);
            this.AddQuestion(qg3);
            return this._QuestionList;
        }
        #endregion

        public override int GroupIndex
        {
            get { return 3; }
        }
    }
}
